{% extends "help.html" %}
{% block article %}
<div class="sidenote">
    См.: {{ methodic() }}. Стр. 13.
</div>

<p>Пользуясь моделью массового обслуживания, решим задачу, описанную на с. 13 учебно-методического пособия: смоделируем работу супермаркета.</p>

<blockquote>
<p><strong>1.</strong> Менеджеру магазина необходимо принять решение об его оптимальной структуре. Количество клиентов, ежедневно нуждающихся в обслуживании, точно неизвестно. Основные правила модели:</p>
<ol>
    <li>входной поток клиентов — простейший (время между соседними заявками имеет показательное распределение) с интенсивностью <em>λ</em> = 25 заявок в час;</li>
    <li>время обслуживания заявки является случайной величиной, которая имеет показательное распределение со средним значением <em>t<sub>обс. ср</sub></em> = 6 мин;</li>
    <li>средний доход от обслуживания одного клиента равен <em>B</em> = 150 руб.;</li>
    <li>максимальное время ожидания равно <em>t<sub>ож.max</sub> = 15 мин;</li>
    <li>вновь поступившая заявка обслуживается в том канале, который раньше всех освободился;</li>
    <li>период работы равен 64 ч.</li>
</ol>

<p>С помощью программы «Имитатор» определите оптимальную структуру магазина. Число каналов является переменной величиной. Составьте таблицу зависимости показателя эффективности модели от числа каналов.</p>
</blockquote>

<div class="sidenote">
    Описание работы модели массового обслуживания дано в пособии: {{ book() }}, см. стр. 23-55, 93-110.
</div>

<p>Открыв <a href="/mss">модель массового обслуживания</a>, введём в неё известные нам данные. Число каналов положим равным единице.</p>

<table>
    <thead>
        <tr>
            <th class="section">Поле</th>
            <th class="section">Значение</th>
            <th class="section">Описание</th>
        </tr>
    </thead>
    <tr><th>Число каналов</th><td>1</td><td>Количество каналов (операторов, точек обслуживания) в системе. Этот параметр нам нужно подобрать опытным путём, чтобы добиться наилучшего результата.</td></tr>
    <tr><th>Продолжительность</th><td>64 ч</td><td>Продолжительность работы модели.</td></tr>
    <tr><th>Число итераций</th><td>10</td><td>Чтобы сделать результаты более точными, программа запускает модель много раз и выдаёт усреднённые значения. Чем больше число итераций, тем точнее результаты, но дольше вычисления.</td></tr>
    
    <tr><th class="section" colspan="3">Заявки</th></tr>
    <tr><th>Поступает, в час</th><td>25 шт</td><td>Количество заявок (клиентов, заказов), поступающих в систему в час.</td></tr>
    <tr><th>Обрабатывается, в час</th><td>10 шт</td><td>Количество заявок, которые наша система может обработать в час. По условию, обработка каждой заявки занимает 6 мин; следовательно, в час обрабатывается в среднем 10 заявок.</td></tr>
    <tr><th>Средний доход</th><td>150 р</td><td>Средний доход от обслуживания каждой заявки.</td></tr>
    
    <tr><th class="section" colspan="3">Очередь</th></tr>
    <tr><th>Макс. размер</th><td></td><td>Максимальный допустимый размер очереди. Например, если он будет установлен в 10 заявок, то 11-я заявка будет отклонена и будет потеряна для системы. Если это поле оставить пустым, длина очереди не ограничивается.</td></tr>
    <tr><th>Макс. срок ожидания</th><td>0.25 ч</td><td>Максимальное время, какое заявка ожидает в очереди. Если это время превышено, то заявка покидает систему необслуженной. Если оставить поле пустым, то заявки будут ждать в очереди сколь угодно долго.</td></tr>
</table>

<p>Введя эти значения, нажмём <strong>Рассчитать</strong>. Должно получиться приблизительно следующее.</p>

{{ snapshot(image='/images/help/mss/initial.png', thumbnail='/images/help/mss/initial-thumb.png', title='Супермаркет при одном канале', link='http://goo.gl/GLJKr') }}

<p>Рассмотрим, что означают выходные данные.</p>

<table>
    <caption>Статистика работы системы</caption>
    
    <tr><th>Всего поступило заявок</th><td>Общее количество заявок, пришедших в систему.</td></tr>
    <tr><th>Из них отклонено</th><td>Число заявок, по разным причинам не удовлетворённых, в том числе:</td></tr>
    <tr><th>По времени ожидания</th><td>Заявки, которым надоело ждать в очереди.</td></tr>
    <tr><th>По размеру очереди</th><td>Заявки, заметившие, что очередь слишком велика и проще уйти к конкурентам, чем дожидаться пока она рассосётся.</td></tr>
    <tr><th>По концу рабочего времени</th><td>Заявки, которые оставались в системе, кода её срок работы подходил к концу. Сотрудники строго вовремя ушли домой, и заявкам пришлось остаться без обслуживания.</td></tr>
    <tr><th>Обработано</th><td>Количество заявок, прошедших все препоны и обработанных системой.</td></tr>
    
    <tr><th class="section" colspan="2">Доходы и расходы</th></tr>
    <tr><th>Выручка</th><td>Общий доход системы, полученный от обработки заявок.</td></tr>
    <tr><th>Постоянные расходы</th><td>Расходы, необходимые для поддержания работы системы и зависящие только от количества каналов.</td></tr>
    <tr><th>Чистая прибыль</th><td>Часть выручки, которая остаётся в нашем распоряжении за вычетом предыдущего пункта.</td></tr>
    
    <tr><th class="section" colspan="2">Основные показатели</th></tr>
    <tr><th>Средний доход</th><td>То же самое, что и чистая прибыль.</td></tr>
    <tr><th>Средняя относительная прибыль</th><td>Число заявок, которые дают чистую прибыль. Равняется частному от чистой прибыли и дохода с каждой заявки.</td></tr>
</table>

<p>По графику распределения заявок видно, что всего 39.1% заявок, поступивших в систему, обрабатывается ею; остальные отвергаются. Наиболее значимая причина отказов - ограничение по времени ожидания. Заявки уходят из очереди после 15 мин ожидания, не дождавшись, чтобы их обслужили.</p>

<p>Чтобы определить причину, перейдём к графику "Вероятностное распределение количества заявок в системе". Вот пример такого графика.</p>

<div class="figure">
    <img src="http://goo.gl/5yzsz" alt="" />
    <div class="caption">Вероятностное распределение количества заявок в системе</div>
</div>

<p>На оси абсцисс отмечено количество заявок, находящихся в системе, а на оси ординат - вероятность их пребывания в ней. Наивысшая точка графика имеет координаты (6, 15.33%). Это значит, что с вероятностью, составляющей 15.33%, в системе будет находиться 6 заявок, одна в обработке (зелёная часть графика) и остальные 5 в очереди (красная часть). Поскольку эта точка наивысшая, такое состояние является наиболее вероятным.</p>

<p>"Горб" графика находится полностью в красной его части. Это значит, что, скорее всего, в магазине будет постоянная очередь размером 5-10 человек. Поток клиентов намного превышает возможности магазина по работе с ними. Модель, правда, не учитывает, что клиентам скоро надоест пользоваться услугами такого магазина и они сбегут к другим.</p>

<p>Чтобы этого не случилось, попробуем поменять число каналов на 2, 3, 4, ... и посмотреть, что будет. Основные показатели запишем в таблицу.</p>

<table>
    <thead>
        <tr><th>Количество каналов</th><th>Средний доход</th><th>Средняя относительная прибыль</th></tr>
    </thead>
    
    <tbody>
        <tr><td>1</td><td>93794 р</td><td>625.29</td></tr>
        <tr><td>2</td><td>182218 р</td><td>1214.79</td></tr>
        <tr><td>3</td><td>230681 р</td><td>1537.87</td></tr>
        <tr><td>4</td><td>238538 р</td><td>1590.25</td></tr>
        <tr><td>5</td><td>240619 р</td><td>1604.13</td></tr>
        <tr><td>6</td><td>238274 р</td><td>1588.49</td></tr>
        <tr><td>7</td><td>240938 р</td><td>1606.25</td></tr>
    </tbody>
</table>

<p>Как видим, наиболее высокие результаты система начинает показывать при 4 каналах. Почему это так?</p>

<div class="figure">
    <img src="http://goo.gl/gFcJp" alt="" />
    <div class="caption">Распределение заявок</div>
</div>

<p>Как видно на графике, большая часть заявок теперь обрабатывается. Лишь 4.23% заявок отбрасываются по причине превышения времени ожидания.</p>

<div class="figure">
    <img src="http://goo.gl/uRZxD" alt="" />
    <div class="caption">Распределение вероятностей</div>
</div>

<p>Теперь "горб" графика находится в зоне заявок, находящихся в обработке. Поэтому статистически наиболее вероятное состояние системы - отсутствие очереди и наличие 2 заявок в обработке. При этом половина каналов будет простаивать; однако за счёт этого система будет справляться с высокими нагрузками.</p>

Перейдём к следующей части задачи.

<blockquote>
<strong>2.</strong> Стоимость рекламы составляет 1200 руб. Предположительно, интенсивность потока клиентов должна увеличиться в 1.3 раза. Как в этом случае изменится эффективность модели?
</blockquote>

<p>После внедрения рекламы в систему поступает 32.5 заявки в час. Положив число каналов равным 4, получим:</p>

<table>
    <th>Средний доход</th><td>305483 р</td></tr>
    <th>Средняя относительная прибыль</th><td>2036.55</td></tr>
</table>

<p>Как видим, средний доход возрос при этом на 305 483 - 238 538 = 66 945 р, а средняя относительная прибыль на 2036.55 - 1590.25 = 446.3. Вспомнив, что затраты возросли лишь на 1200 р, делаем вывод, что реклама оказалась эффективной. Это дополняется графиками:</p>

<div class="figure">
    <img src="http://goo.gl/Mijye" alt="" />
    <div class="caption">Распределение заявок</div>
</div>

<div class="figure">
    <img src="http://goo.gl/q9rDg" alt="" />
    <div class="caption">Распределение вероятностей</div>
</div>

<p>Как видим, незначительное количество заявок отклоняется системой, и в среднем занято 3 канала. Увеличение потока позволило более использовать имеющиеся ресурсы.</p>

<blockquote>
<strong>3.</strong> Менеджеру стало известно, что если в магазине играет музыка, то время ожидания клиентов может возрасти в 2 раза. Оцените эффективность данной идеи. Данные вводятся (и считается эффективность) с учетом п. 2.
</blockquote>

<p>Время ожидания клиентов теперь равно 30 минут, то есть 0.5 ч. Подставим это значение в модель.</p>

<table>
    <th>Средний доход</th><td>312383 р</td></tr>
    <th>Средняя относительная прибыль</th><td>2082.55</td></tr>
</table>

<p>В предыдущем варианте мы видели, что очередь сравнительно невелика. Теперь мы приняли меры, которые должны влиять на очередь. Как видим, они подействовали: показатели системы выросли, хотя и сравнительно ненамного.</p>

<blockquote>
<strong>4.</strong> Поступило предложение купить новый кассовый аппарат. При этом среднее время обслуживания (<em>t<sub>обс.ср.</sub></em>) сократится на 15%, а среднее время безотказной работы увеличится в 2 раза (и составит <em>2T<sub>отк.ср</sub></em>). Правила модели:

<ol>
    <li>входной поток клиентов — простейший с интенсивностью <em>λ</em> = 10 заявок в час;</li>
    <li>время обслуживания заявки является случайной величиной, распределенной равномерно на интервале (a, b), величина которого равна 0.6 мин;</li>
    <li>средняя стоимость ремонта при каждом отказе составляет <em>A<sub>4</sub></em> = 400 руб.;</li>
    <li>средний доход от обслуживания одного клиента <em>B</em> = 150 руб.;</li>
    <li>в системе могут быть отказы 1-го и 2-го рода;</li>
    <li>максимальное время ожидания равно <em>t<sub>ож.max</sub></em> = 15 мин;</li>
    <li>среднее время безотказной работы равно <em>T<sub>отк.ср</sub></em> = 28 ч;</li>
    <li>среднее время устранения отказа равно <em>T<sub>уст.ср.</sub></em> = 30 мин;</li>
    <li>стоимость нового кассового аппарата <em>A<sub>5</sub></em> = 2100 руб.</li>
</ol>

<p>Период работы равен 64 ч. Вероятность появления отказа 1-го рода равна 0.5.</p>

<p>С помощью модели одноканальной СМО с отказами, которая рассчитывает среднее число обслуженных заявок и среднее число отказов, определите, стоит ли покупать новый кассовый аппарат. Рассмотрите оба варианта.</p>
</blockquote>

<p>Для решения этой задачи введём понятия отказа и аварии.</p>

<dl>
    <dt>Отказ</dt>
    <dd>Перерыв в работе канала, вызванный какой-либо неполадкой: оператор банка ушёл пить чай, взлётная полоса проходит очистку ото льда, у клерка зависла 1С, и тому подобное. Если в канале находится в данный момент заявка, то работа над ней приостанавливается, а после проведения ремонта - продолжается. Также называется отказом первого рода.</dd> 
    <dt>Авария</dt>
    <dd>Более серьёзный отказ, приводящий к тому, что работу над заявкой нужно начинать заново. Если Windows на компьютере того же оператора выдала синий экран, велика вероятность, что клиенту придётся заново диктовать свои данные. Также называется отказом второго рода.</dd>
</dl>
</dl>

<div class="sidenote">
    Внимательный читатель обратит внимание, что мы здесь никак не касаемся условия о линейном распределении времени обслуживания заявки. К сожалению, сейчас программа не поддерживает указание распределения; оно может быть только экспоненциальным (следовательно, поток - пуассоновским). Но над этим ведётся работа.
</div>

<p>Для управления отказами в панели исходных параметров модели СМО предлагается отдельный блок. Введём в него данные, предложенные в задаче на случай отказа от покупки кассового аппарата.</p>

<table>
    <thead>
        <tr>
            <th class="section">Поле</th>
            <th class="section">Значение</th>
            <th class="section">Описание</th>
        </tr>
    </thead>

    <tbody>
        <tr><th class="section" colspan="3">Отказы</th></tr>
        <tr><th>Наработка на отказ</th><td>28 ч</td><td>Среднее время между отказами. В данном случае - в среднем каждые 28 ч случается неполадка в системе.</td></tr>
        <tr><th>Время ремонта</th><td>0.5 ч</td><td>Средняя продолжительность ремонта канала.</td></tr>
    <tr><th>Стоимость ремонта</th><td>400 р</td><td>Средства, необходимые на ремонт канала.</td></tr>
    <tr><th>Вероятность аварии</th><td>0.5</td><td>Это число, определяющее частоту аварий. Если вероятность равна 0, то аварий вообще не случается, если 1 - то всякий отказ является аварией. А если 0.5 - того и другого поровну.</td></tr>
    </tbody>
</table>

<p>Получаем следующее.</p>

{{ snapshot(image='/images/help/mss/without.png', thumbnail='/images/help/mss/without-thumb.png', title='Без нового кассового аппарата', link='http://goo.gl/zwEgT') }}

<p>Теперь рассчитаем, что произойдёт, если добавить в систему новый кассовый аппарат. Наработка на отказ при этом увеличится в два раза, составив 56 часов, а время обслуживания заявки сократится с 0.1 ч на 15% и составит 0.085. Следовательно, в час мы обслуживаем теперь приблизительно 11.76 заявок.</p>

<p>Как видно по рисунку, прибыль увеличилась на 80374 - 72994 = 7380 р, что более чем окупает стоимость нового кассового аппарата, равную 2100 р. Следовательно, покупка аппарата является рентабельной.</p>

{{ snapshot(image='/images/help/mss/with.png', thumbnail='/images/help/mss/with-thumb.png', title='С новым кассовым аппаратом', link='http://goo.gl/9TOIk') }}

<div class="sidenote">На такой оптимистической ноте мы закончим описание нашей модели. Продолжение следует! Оставайтесь с нами и с курсом "Имитационное моделирование эконмических процессов".</div>

{% endblock article %}
